home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / strlibs.zip / STRMOV.ASM < prev    next >
Assembly Source File  |  1993-01-04  |  1KB  |  55 lines

  1. ;       Static Name Aliases
  2. ;
  3.         TITLE   strmov
  4. ;       NAME    strmov.C
  5. ;
  6. ;   strmov(dst, src) moves all the  characters  of  src  (including  the
  7. ;   closing NUL) to dst, and returns a pointer to the new closing NUL in
  8. ;   dst.
  9. ;
  10. ;   strmov(strmov(dst,a),b) moves a+b into dst.
  11.  
  12.         .287
  13. _TEXT   SEGMENT  BYTE PUBLIC 'CODE'
  14. _TEXT   ENDS
  15. _DATA   SEGMENT  WORD PUBLIC 'DATA'
  16. _DATA   ENDS
  17. CONST   SEGMENT  WORD PUBLIC 'CONST'
  18. CONST   ENDS
  19. _BSS    SEGMENT  WORD PUBLIC 'BSS'
  20. _BSS    ENDS
  21. DGROUP  GROUP   CONST,  _BSS,   _DATA
  22.         ASSUME  CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP
  23. EXTRN   __chkstk:NEAR
  24. _TEXT      SEGMENT
  25. ; Line 15
  26.         PUBLIC  _strmov
  27. _strmov PROC NEAR
  28.         push    bp
  29.         mov     bp,sp
  30.         push    di
  31.         push    si
  32.  
  33. ;       dst = 4
  34. ;       register di = dst
  35. ;       src = 6
  36. ;       register si = src
  37.  
  38.         mov     di,[bp+4]       ;dst
  39.         mov     si,[bp+6]       ;src
  40. $loop:
  41.         movsb
  42.         cmp     byte ptr [di- 1],0
  43.         jne     $loop
  44.  
  45.         lea     ax,[di-1]
  46.         pop     si
  47.         pop     di
  48.         mov     sp,bp
  49.         pop     bp
  50.         ret
  51.  
  52. _strmov ENDP
  53. _TEXT   ENDS
  54. END
  55.